#ifndef INSTANCE_H
#define INSTANCE_H

// Libraries
#include <irrlicht.h>

// Namespaces
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

// Forward Declarations
class CGMap;
class BattleClass;
class ClientBattleClass;
class ServerBattleClass;

// Classes
class InstanceClass 
{
	public:
		InstanceClass();
		~InstanceClass();

		void Update(u32 TDeltaTime);

		// Maps
		CGMap *GetMap(int TMapID);
		
		// Battles
		ClientBattleClass *CreateClientBattle();
		ServerBattleClass *CreateServerBattle();
		void DeleteBattle(BattleClass *TBattle);

	private:

		list<CGMap*> Maps;
		list<CGMap*>::Iterator MapIterator;
		list<BattleClass*> Battles;
		list<BattleClass*>::Iterator BattleIterator;

};

#endif
